package com.accounting.client.remote;

import com.accounting.client.remote.obj.Customer;
import com.accounting.client.remote.transfer.AddCustomerRequest;
import com.accounting.client.remote.transfer.CreatePurchaseListRequest;
import com.accounting.client.remote.transfer.UpdateCustomerRequest;

import corelib.client.jsonrpc.RemoteJSONService;
import corelib.client.search.JSONSearchRequest;
import corelib.client.search.JSONSearchResult;
import corelib.client.search.PagingRequest;
import corelib.client.search.PagingResult;

public interface CustomerService extends RemoteJSONService {
	
	public String AddCustomer(String passport, AddCustomerRequest request);
	public boolean UpdateCustomer(String passport, UpdateCustomerRequest request);
	public boolean RemoveCustomer(String passport, String customerId);
	
	public PagingResult<Customer> ListCustomers(String passport, PagingRequest request);
	public JSONSearchResult<Customer> SearchCustomers(String passport, JSONSearchRequest request);
	
	public boolean SendPurchaseRequest(String passport, CreatePurchaseListRequest request);
	
}
